package com.ruoyi.business.domain.koc;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

@Data
@EqualsAndHashCode(callSuper = true)
@TableName("tb_product_exchange_coupon")
@ApiModel("koc任务分类")
public class TbProductExchangeCoupon extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 兑换券ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 兑换券代码(唯一)
     */
    @TableField("coupon_code")
    private String couponCode;

    /**
     * 兑换券名称
     */
    @TableField("coupon_name")
    private String couponName;

    /**
     * 券类型:1-实物商品 2-虚拟商品 3-服务类
     */
    @TableField("coupon_type")
    private Integer couponType;

    /**
     * 关联商品ID
     */
    @TableField("product_id")
    private Long productId;

    /**
     * 商品名称
     */
    @TableField("product_name")
    private String productName;

    /**
     * 面值/金额
     */
    @TableField("face_value")
    private BigDecimal faceValue;

    /**
     * 最低使用金额
     */
    @TableField("min_use_amount")
    private BigDecimal minUseAmount;

    /**
     * 状态:1-未使用 2-已使用 3-已过期 4-已作废
     */
    @TableField("status")
    private Integer status;

    /**
     * 用户ID
     */
    @TableField("user_id")
    private Long userId;

    /**
     * 有效开始时间
     */
    @TableField("start_time")
    private Date startTime;

    /**
     * 有效结束时间
     */
    @TableField("end_time")
    private Date endTime;

    /**
     * 使用时间
     */
    @TableField("use_time")
    private Date useTime;

    /**
     * 使用订单ID
     */
    @TableField("order_id")
    private Long orderId;

    /**
     * 适用范围:1-全场通用 2-指定商品 3-指定分类
     */
    @TableField("applicable_scope")
    private Integer applicableScope;

    /**
     * 使用规则说明
     */
    @TableField("usage_rules")
    private String usageRules;

    /**
     * 来源id 0 koc产品流水表主键id
     */
    @TableField("source_id")
    private Long sourceId;

    /**
     * 来源类型 0:koc活动
     */
    @TableField("source_type")
    private Integer sourceType;
}
